package Server.TechnicalServices.Mapper;

import java.util.ArrayList;

import Server.Entity.Dominio.ENoImpostaCalcolo;
import Server.Entity.Dominio.ERegola;
import Server.Entity.IceClasses.ENoImpostaCalcoloI;

public class MNoImpostaCalcolo implements Mapper {

	@Override
	public ENoImpostaCalcoloI getIceObj(Object hibObj) {

		ENoImpostaCalcoloI iceNoImposteCalcolo = null;
		
		if ( hibObj instanceof ENoImpostaCalcolo)
		{
			iceNoImposteCalcolo = new ENoImpostaCalcoloI();
			iceNoImposteCalcolo.regole = new ArrayList<EntityCondivise.ERegola>();			
			
			for(ERegola hibRegola: ((ENoImpostaCalcolo) hibObj).getRegole() )
			{
				Mapper regolaMapper = new MapperFactory().getMapper(hibRegola);
				iceNoImposteCalcolo.regole.add( (EntityCondivise.ERegola) regolaMapper.getIceObj(hibRegola) );
			}
		}
		
		return iceNoImposteCalcolo;
	}

	@Override
	public ENoImpostaCalcolo getHibObj(Object iceObj) {

		ENoImpostaCalcolo hibNoImposteCalcolo = null;
				
		
		if (( iceObj instanceof ENoImpostaCalcoloI) || ( iceObj instanceof EntityCondivise.ENoImpostaCalcolo))
		{
			hibNoImposteCalcolo = new ENoImpostaCalcolo();
			hibNoImposteCalcolo.setRegole( new ArrayList<ERegola>() ); 			
			
			for(EntityCondivise.ERegola iceRegola: ((ENoImpostaCalcoloI) iceObj).regole)
			{
				Mapper regolaMapper = new MapperFactory().getMapper(iceRegola);
				hibNoImposteCalcolo.getRegole().add( (ERegola) regolaMapper.getHibObj(iceRegola) );
			}
		}
		
		return hibNoImposteCalcolo;
		
	}

}
